package com.hdmall.business.common.util;

import org.apache.commons.codec.binary.Hex;

public class HexUtil {
    /**
     * 将Hex编码字符串转换成普通字符串
     *
     * @param dataCoding 反编码格式，15表示GBK编码，8表示UnicodeBigUnmarked编码，0表示ISO8859-1编码
     * @param hexStr Hex编码字符串
     * @return 普通字符串
     */
    public static String decodeHexStr(int dataCoding, String hexStr) {
        String realStr = null;
        try {
            if (hexStr != null) {
                if (dataCoding == 15) {
                    realStr = new String(Hex.decodeHex(hexStr.toCharArray()), "GBK");
                } else if ((dataCoding & 0x0C) == 0x08) {
                    realStr = new String(Hex.decodeHex(hexStr.toCharArray()), "UnicodeBigUnmarked");
                } else {
                    realStr = new String(Hex.decodeHex(hexStr.toCharArray()), "ISO8859-1");
                }
            }
        } catch (Exception e) {
            System.out.println(e.toString());
        }

        return realStr;
    }

    public static void main(String[] args) {
        String hexStr="00000000  50 4f 53 54 20 2f 53 65  72 76 69 63 65 44 69 73   POST /Se rviceDis\n" +
                "00000010  70 61 74 63 68 65 72 53  65 72 76 6c 65 74 2f 64   patcherS ervlet/d\n" +
                "00000020  65 66 61 75 6c 74 20 48  54 54 50 2f 31 2e 31 0d   efault H TTP/1.1.\n" +
                "00000030  0a 43 6f 6e 74 65 6e 74  2d 74 79 70 65 3a 20 61   .Content -type: a\n" +
                "00000040  70 70 6c 69 63 61 74 69  6f 6e 2f 6f 63 74 65 74   pplicati on/octet\n" +
                "00000050  2d 73 74 72 65 61 6d 0d  0a 69 73 41 67 65 6e 74   -stream. .isAgent\n" +
                "00000060  47 65 74 74 65 64 3a 20  74 72 75 65 0d 0a 62 75   Getted:  true..bu\n" +
                "00000070  73 69 69 64 3a 20 30 42  4e 43 31 36 34 65 61 34   siid: 0B NC164ea4\n" +
                "00000080  33 61 38 64 66 30 30 30  30 30 30 35 30 35 36 63   3a8df000 0005056c\n" +
                "00000090  30 30 30 30 31 30 30 33  39 66 38 62 39 0d 0a 61   00001003 9f8b9..a\n" +
                "000000A0  70 70 69 64 3a 20 77 70  57 75 52 52 43 62 6e 6e   ppid: wp WuRRCbnn\n" +
                "000000B0  34 30 34 37 37 36 38 30  32 33 0d 0a 43 61 63 68   40477680 23..Cach\n" +
                "000000C0  65 2d 43 6f 6e 74 72 6f  6c 3a 20 6e 6f 2d 63 61   e-Contro l: no-ca\n" +
                "000000D0  63 68 65 0d 0a 50 72 61  67 6d 61 3a 20 6e 6f 2d   che..Pra gma: no-\n" +
                "000000E0  63 61 63 68 65 0d 0a 55  73 65 72 2d 41 67 65 6e   cache..U ser-Agen\n" +
                "000000F0  74 3a 20 4d 6f 7a 69 6c  6c 61 2f 34 2e 30 20 28   t: Mozil la/4.0 (\n" +
                "00000100  57 69 6e 64 6f 77 73 20  31 30 20 31 30 2e 30 29   Windows  10 10.0)\n" +
                "00000110  20 4a 61 76 61 2f 31 2e  38 2e 30 5f 31 37 31 0d    Java/1. 8.0_171.\n" +
                "00000120  0a 48 6f 73 74 3a 20 31  32 32 2e 32 32 37 2e 36   .Host: 1 22.227.6\n" +
                "00000130  31 2e 32 31 3a 38 35 0d  0a 41 63 63 65 70 74 3a   1.21:85. .Accept:\n" +
                "00000140  20 74 65 78 74 2f 68 74  6d 6c 2c 20 69 6d 61 67    text/ht ml, imag\n" +
                "00000150  65 2f 67 69 66 2c 20 69  6d 61 67 65 2f 6a 70 65   e/gif, i mage/jpe\n" +
                "00000160  67 2c 20 2a 3b 20 71 3d  2e 32 2c 20 2a 2f 2a 3b   g, *; q= .2, */*;\n" +
                "00000170  20 71 3d 2e 32 0d 0a 43  6f 6e 6e 65 63 74 69 6f    q=.2..C onnectio\n" +
                "00000180  6e 3a 20 6b 65 65 70 2d  61 6c 69 76 65 0d 0a 43   n: keep- alive..C\n" +
                "00000190  6f 6e 74 65 6e 74 2d 4c  65 6e 67 74 68 3a 20 37   ontent-L ength: 7\n" +
                "000001A0  36 31 0d 0a 43 6f 6f 6b  69 65 3a 20 4a 53 45 53   61..Cook ie: JSES\n" +
                "000001B0  53 49 4f 4e 49 44 3d 44  36 30 41 43 36 38 38 43   SIONID=D 60AC688C\n" +
                "000001C0  39 43 33 41 43 37 43 32  35 33 43 36 36 38 42 33   9C3AC7C2 53C668B3\n" +
                "000001D0  30 30 37 43 42 41 41 2e  73 65 72 76 65 72 0d 0a   007CBAA. server..\n" +
                "000001E0  0d 0a                                              ..\n" +
                "000001E2  00 00 02 f5 72 71 89 09  f8 ed 6e 25 c1 7b c7 64   ....rq.. ..n%.{.d\n" +
                "000001F2  61 bf bc 53 5a 85 cc 8e  ce bd 10 78 c1 7e 98 67   a..SZ... ...x.~.g\n" +
                "00000202  15 1b 30 d8 89 b0 ff fb  9c c6 9b ba e6 9c 52 83   ..0..... ......R.\n" +
                "00000212  38 3f d4 fe a8 d1 2c be  b0 29 b0 5a 77 05 25 24   8?....,. .).Zw.%$\n" +
                "00000222  7b 60 eb 98 09 11 49 c8  ff 17 fc d5 8c 18 d8 4c   {`....I. .......L\n" +
                "00000232  1c 4b 34 24 01 12 b0 bc  15 24 e1 6f 1d 31 d9 c4   .K4$.... .$.o.1..\n" +
                "00000242  6b bb e2 63 28 82 b5 80  6f 54 3e 8d 59 4d 20 2a   k..c(... oT>.YM *\n" +
                "00000252  3e 3c 87 c2 0e 9d 8d f3  17 05 39 c0 80 af c6 5e   ><...... ..9....^\n" +
                "00000262  39 2e 53 d9 71 0f 83 18  f6 74 ba 47 7b 5c e0 ad   9.S.q... .t.G{\\..\n" +
                "00000272  c9 ec d2 d5 c0 59 0a c3  4c 6a 56 03 84 80 36 e7   .....Y.. LjV...6.\n" +
                "00000282  77 3c e4 5e 46 6e 4f 25  d0 7e 95 19 06 c6 c9 81   w<.^FnO% .~......\n" +
                "00000292  d0 d2 e7 d3 e1 1a 6e 89  25 49 47 2a b3 9e 9a 9f   ......n. %IG*....\n" +
                "000002A2  79 66 c6 02 b9 45 f1 48  50 0e ad 09 a9 df fb 66   yf...E.H P......f\n" +
                "000002B2  e9 21 d3 bd dc b4 c6 bf  5d ee 90 fd a4 d1 9f 92   .!...... ].......\n" +
                "000002C2  4a b9 4f 75 ac 2f 38 cb  09 9c 3d 0b de 6b 2a 5f   J.Ou./8. ..=..k*_\n" +
                "000002D2  ae 44 b1 5d 93 5a 39 51  ba c3 cb b2 9c e2 c1 51   .D.].Z9Q .......Q\n" +
                "000002E2  fe 14 fb d4 b4 8f 16 4e  77 ca c3 bc cf 9a d2 5f   .......N w......_\n" +
                "000002F2  b6 d4 15 74 7f 5c 39 d6  d5 24 5e 90 3b 63 22 69   ...t.\\9. .$^.;c\"i\n" +
                "00000302  72 3b 89 1d 9a 3b 66 b2  3f c1 ab c1 14 45 0f 94   r;...;f. ?....E..\n" +
                "00000312  ea 2d 84 d4 c2 ca a4 e6  94 ed da 4c f8 3a 0c ff   .-...... ...L.:..\n" +
                "00000322  69 a4 2a 66 c2 c8 ca ab  1b be 05 b9 a3 e7 dc 70   i.*f.... .......p\n" +
                "00000332  73 67 25 7a 7f 6a 40 b4  27 2b 14 f0 89 be 64 6d   sg%z.j@. '+....dm\n" +
                "00000342  fa 49 22 38 ba 3e c3 51  f4 9c 2d d9 72 de 69 6f   .I\"8.>.Q ..-.r.io\n" +
                "00000352  9b da 09 c4 30 db c5 dc  6d 7b 5d ce a2 6c 03 6f   ....0... m{]..l.o\n" +
                "00000362  54 e1 88 4a 88 fb d0 73  5a a6 da 25 d5 c2 68 38   T..J...s Z..%..h8\n" +
                "00000372  9f ed 37 ac c0 0f ea 3c  57 e8 38 0e 2f b7 4e 94   ..7....< W.8./.N.\n" +
                "00000382  3e c7 8e d9 53 5b 65 2f  ae 1f 64 99 13 af 26 5b   >...S[e/ ..d...&[\n" +
                "00000392  dd 94 c7 10 c8 69 45 36  b2 fe fc 47 a9 7e 09 af   .....iE6 ...G.~..\n" +
                "000003A2  1e b9 85 a6 08 10 a3 20  8f df 59 87 b4 4c fc a1   .......  ..Y..L..\n" +
                "000003B2  26 22 8a 00 46 0a 8b 93  08 cf 37 9e d7 13 ed 58   &\"..F... ..7....X\n" +
                "000003C2  e2 52 52 9b 3d 50 f3 86  6b 4d 52 40 84 05 d5 cf   .RR.=P.. kMR@....\n" +
                "000003D2  b4 9a 54 99 94 1c 63 54  0e 22 36 f0 fa 8d 73 bd   ..T...cT .\"6...s.\n" +
                "000003E2  e0 65 3a 79 80 6a c1 5d  1f 2b 61 c7 52 06 05 2c   .e:y.j.] .+a.R..,\n" +
                "000003F2  1a 1a e5 0e 78 5b 1c 5a  47 74 7f 51 e8 9b b6 6c   ....x[.Z Gt.Q...l\n" +
                "00000402  89 0d a9 7b 51 f7 3b cf  98 7b 69 ed a1 73 6c 28   ...{Q.;. .{i..sl(\n" +
                "00000412  a0 12 76 01 7a 58 0f b9  04 76 b3 d3 20 d6 f8 eb   ..v.zX.. .v.. ...\n" +
                "00000422  fd 12 f3 70 47 db f1 6d  d7 0b 30 53 0d 0a 1a 3c   ...pG..m ..0S...<\n" +
                "00000432  4c 11 45 be c7 f8 5f 34  6c 6f ad dd e0 6d 92 9c   L.E..._4 lo...m..\n" +
                "00000442  89 8e 7a b1 cd 17 e3 d6  e4 a1 47 f3 95 4e 35 0c   ..z..... ..G..N5.\n" +
                "00000452  33 21 59 09 7c 35 db 56  3c ed 8c 76 67 8e 90 c6   3!Y.|5.V <..vg...\n" +
                "00000462  80 34 c1 e1 c7 43 48 d6  f4 e8 d1 45 42 8d db 20   .4...CH. ...EB.. \n" +
                "00000472  3e 52 9a 02 c4 63 96 47  46 84 1f be 68 48 f4 80   >R...c.G F...hH..\n" +
                "00000482  ad f4 c6 8b 99 d6 6f a7  94 22 e8 1d 92 a9 7e 58   ......o. .\"....~X\n" +
                "00000492  b2 a1 ec 60 40 de 3b 66  4c 9b 54 6c fc 87 0d f3   ...`@.;f L.Tl....\n" +
                "000004A2  e2 04 fc ab 41 31 99 18  0c 98 65 b3 04 26 c0 24   ....A1.. ..e..&.$\n" +
                "000004B2  cd 93 96 95 2a 99 6b 40  74 12 b7 5d e4 8f be 27   ....*.k@ t..]...'\n" +
                "000004C2  4e 20 af cd 07 99 a0 86  37 66 f4 90 3f af c2 01   N ...... 7f..?...\n" +
                "000004D2  ca d7 33 72 12 8d 43 4f  eb                        ..3r..CO .\n" +
                "    00000000  48 54 54 50 2f 31 2e 31  20 32 30 30 20 4f 4b 0d   HTTP/1.1  200 OK.\n" +
                "    00000010  0a 53 65 72 76 65 72 3a  20 41 70 61 63 68 65 2d   .Server:  Apache-\n" +
                "    00000020  43 6f 79 6f 74 65 2f 31  2e 31 0d 0a 63 61 6c 6c   Coyote/1 .1..call\n" +
                "    00000030  65 65 2d 73 72 69 64 3a  20 38 34 65 38 61 34 39   ee-srid:  84e8a49\n" +
                "    00000040  36 34 30 35 64 37 33 61  32 38 33 34 36 61 66 31   6405d73a 28346af1\n" +
                "    00000050  34 61 32 63 61 38 31 35  64 0d 0a 63 61 6c 65 65   4a2ca815 d..calee\n" +
                "    00000060  2d 74 79 70 65 63 6f 64  65 3a 20 31 39 35 30 0d   -typecod e: 1950.\n" +
                "    00000070  0a 61 67 65 6e 74 48 74  74 70 50 6f 72 74 3a 20   .agentHt tpPort: \n" +
                "    00000080  34 34 34 34 35 0d 0a 61  67 65 6e 74 48 74 74 70   44445..a gentHttp\n" +
                "    00000090  73 50 6f 72 74 3a 20 34  34 34 34 34 0d 0a 79 6f   sPort: 4 4444..yo\n" +
                "    000000A0  6e 79 6f 75 43 6c 6f 75  64 3a 20 68 74 74 70 73   nyouClou d: https\n" +
                "    000000B0  3a 2f 2f 79 79 79 2e 79  6f 6e 79 6f 75 63 6c 6f   ://yyy.y onyouclo\n" +
                "    000000C0  75 64 2e 63 6f 6d 0d 0a  61 67 65 6e 74 49 50 3a   ud.com.. agentIP:\n" +
                "    000000D0  20 31 39 32 2e 31 36 38  2e 32 32 30 2e 31 35 0d    192.168 .220.15.\n" +
                "    000000E0  0a 72 65 73 75 6c 74 2d  6c 65 6e 67 74 68 3a 20   .result- length: \n" +
                "    000000F0  31 38 31 0d 0a 74 78 74  69 6d 65 3a 20 32 32 0d   181..txt ime: 22.\n" +
                "    00000100  0a 74 78 69 64 3a 20 38  35 65 33 33 37 37 35 61   .txid: 8 5e33775a\n" +
                "    00000110  61 62 65 36 36 62 65 38  35 36 38 41 31 35 33 30   abe66be8 568A1530\n" +
                "    00000120  37 30 36 30 36 32 36 32  39 41 32 32 36 36 37 38   70606262 9A226678\n" +
                "    00000130  36 37 0d 0a 43 6f 6e 74  65 6e 74 2d 54 79 70 65   67..Cont ent-Type\n" +
                "    00000140  3a 20 61 70 70 6c 69 63  61 74 69 6f 6e 2f 78 2d   : applic ation/x-\n" +
                "    00000150  6a 61 76 61 2d 73 65 72  69 61 6c 69 7a 65 64 2d   java-ser ialized-\n" +
                "    00000160  6f 62 6a 65 63 74 0d 0a  43 6f 6e 74 65 6e 74 2d   object.. Content-\n" +
                "    00000170  4c 65 6e 67 74 68 3a 20  31 38 35 0d 0a 44 61 74   Length:  185..Dat\n" +
                "    00000180  65 3a 20 4d 6f 6e 2c 20  33 30 20 4a 75 6c 20 32   e: Mon,  30 Jul 2\n" +
                "    00000190  30 31 38 20 30 38 3a 33  36 3a 34 36 20 47 4d 54   018 08:3 6:46 GMT\n" +
                "    000001A0  0d 0a 0d 0a                                        ....\n" +
                "    000001A4  00 00 00 b5 72 71 89 09  e1 b0 ec 9d 91 85 55 e3   ....rq.. ......U.\n" +
                "    000001B4  e9 72 90 74 97 84 ee c3  d6 58 c1 f7 a4 d3 f1 6d   .r.t.... .X.....m\n" +
                "    000001C4  73 2a f8 84 9d 39 93 85  ff d6 0a 39 af 80 8b a5   s*...9.. ...9....\n" +
                "    000001D4  ba 4d 44 95 b8 2a 91 f2  cb 64 ca 27 00 36 40 af   .MD..*.. .d.'.6@.\n" +
                "    000001E4  39 d3 dc 63 a2 72 41 2a  e5 b1 fc 76 57 01 eb ac   9..c.rA* ...vW...\n" +
                "    000001F4  f2 89 4a 65 d3 63 14 f9  05 c2 5c ef 91 2e 49 0c   ..Je.c.. ..\\...I.\n" +
                "    00000204  a7 12 a8 4a 65 36 47 29  97 ee 17 73 f7 81 22 41   ...Je6G) ...s..\"A\n" +
                "    00000214  3a 0e 73 50 7b f7 36 74  3b 0f 95 bf 2a 30 b5 a4   :.sP{.6t ;...*0..\n" +
                "    00000224  f2 f0 6c f8 7b fc 6a a4  71 81 1e c1 28 36 3b c6   ..l.{.j. q...(6;.\n" +
                "    00000234  52 16 c5 52 84 a6 f1 86  fc 71 7d cb 65 c3 e7 ca   R..R.... .q}.e...\n" +
                "    00000244  9c 69 1c c1 0c 6f 9a e3  bf 45 6e 97 13 e6 89 9b   .i...o.. .En.....\n" +
                "    00000254  51 2b 10 3d 89 78 2b 9f  93                        Q+.=.x+. .\n";
        String s=decodeHexStr(0,hexStr);
        System.out.println(s);
    }
}
